package com.example.amdroid.lbs;

import com.google.android.maps.MyLocationOverlay;

import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class lbsActivity extends Activity {
    /** Called when the activity is first created. */
	
	private static final long MINIMUM_DISTANCE_CHANGE_FOR_UPDATES = 1;
	private static final long MINIMUM_TIME_BETWEEN_UPDATES =1000;
	protected LocationManager locationManager ;
	protected Button retrieveLocationButton;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        retrieveLocationButton = (Button)findViewById(R.id.retrieve_button);
        
        locationManager  = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
        
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,MINIMUM_TIME_BETWEEN_UPDATES,MINIMUM_DISTANCE_CHANGE_FOR_UPDATES, new MyLocationListener());
        
        retrieveLocationButton.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				showCurrentLocation();
				
			}
		});
    }
    
    protected void showCurrentLocation()
    {
    	Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
    	
    	if(location!=null){
    		
    		String message = String.format(
					"Current Location \n Longitude: %1$s \n Latitude: %2$s",
					location.getLongitude(), location.getLatitude()
			);
			Toast.makeText(lbsActivity.this, message,
					Toast.LENGTH_LONG).show();

    		
    		
    		
    	}
    	
    	
    }
    
    private class MyLocationListener implements LocationListener
    
    {

		@Override
		public void onLocationChanged(Location location) {
			String message = String.format("New Location \n Longitude : %1$s \n Latitude: %2$s",location.getLongitude(),location.getLatitude());
			Toast.makeText(lbsActivity.this, message, Toast.LENGTH_LONG).show();
			
			
		}

		@Override
		public void onProviderDisabled(String arg0) {
			Toast.makeText(lbsActivity.this, "Provider Disabled by user.GPS turned off",Toast.LENGTH_LONG).show();
			
		}

		@Override
		public void onProviderEnabled(String arg0) {
			Toast.makeText(lbsActivity.this,
					"Provider enabled by the user. GPS turned on",
					Toast.LENGTH_LONG).show();
			
		}

		@Override
		public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
			Toast.makeText(lbsActivity.this, "Provider status changed",
					Toast.LENGTH_LONG).show();
			
		}
    
    	
    }
    
}